The invention relates to a method in accordance with the preamble of the attached claim 1 for storing analysis data in a telephone exchange. The method of the invention is intended especially for storing data structures used in the digit analyses of telephone exchanges, but as the following more detailed description will show, the same principle may also be utilized for storing in a telephone exchange data which is intended for carrying out other analyses.
When a subscriber of a telephone network makes a call, the destination (subscriber B) of the call is determined on the basis of the dialled digit combination (i.e. telephone number). Each node of the telephone network finds out the destination of incoming calls by analysing these digits. This procedure, in the following referred to as digit analysis, is a functional part of a telephone exchange, which, in response to a given telephone number, returns the corresponding destination.
Digit analysis is based in a telephone exchange (e.g. in a DX 200 of the applicant) on a data structure in which records form a hierarchical tree structure. Each record contains e.g. 16 fields, each corresponding to a certain button of the telephone (0, 1, 2, . . . 9, *, #, etc.). A single field is either empty (i.e. it is not in use and thus contains nothing), or it contains a pointer. The pointer (which in practice is some binary digit) may point either to the following record or to a destination that is the result of the digit analysis. An empty field means in practice that no digit analysis is carried out for the corresponding button of the telephone.
FIG. 1 illustrates the principle described above. A data structure is composed of several records 11, each containing 16 fields, which are marked with reference symbols 0 . . . 9, a, . . . f. For instance, an analysis carried out for telephone number 408178 returns destination D and an analysis carried out for telephone number 504178 returns destination E. The analysis is carried out by proceeding in the tree structure one dialled digit at a time and examining the content of the field corresponding to the dialled digit, and by proceeding to the record pointed to by the pointer included in said field, in which record the content of the field corresponding to the following digit is examined etc. The field corresponding to the digit to be examined last provides the result of the analysis (destination).
A problem in the present situation is that the size of the data structure to be used for digit analyses tends to grow very large and demands plenty of memory capacity in the exchange. Reasons for this are e.g. the growth of the capacity of the telephone exchanges, new services offered by the telephone exchanges, particularly the willingness of the telephone operators to employ free (i.e. non-hierarchical) numbering.
In prior art, a hierarchical structure has been used in numbering, whereby in each node of the telephone network the destination may be determined by using only a part of the whole telephone number. This prior art way of numbering and the problem arising from free numbering are illustrated in FIGS. 2 . . . 4. FIG. 2 shows a transit exchange 21, which is connected via interconnecting lines to local exchanges 22 and 23, to which subscriber devices SD are connected via subscriber lines. This example contains a total number of 1000 subscriber lines. Let us assume that the telephone numbers of the subscribers located within the area of the transit exchange 21 are in the range 0. . . 999 and that the subscribers whose telephone numbers are within the range 000 . . . 199 are connected to local exchange 22, and the subscribers whose telephone numbers are within the range 200 . . . 999 are connected to local exchange 23. Thus, the data structure to be used for digit analyses in the transit exchange 21 is similar to that shown in FIG. 3, comprising one record 31, the first two fields of which point to local exchange 22, fields 2 . . . 9 point to local exchange 23 and fields a . . . f are empty. In this case, the data structure is thus very simple; in order that a call could be routed in the transit exchange correctly, only the first digit of the telephone number must be analyzed there.
Let us now assume that a subscriber whose telephone number is 000 moves from the area of local exchange 22 to the area of local exchange 23, and his telephone number remains the same. Thus, the situation is similar to that shown in FIG. 4, i.e. subscribers having telephone numbers 000 and 200 . . . 999 are located in the area of local exchange 23. The tree-like data structure of the transit exchange grows in this case a new branch (records 32 and 33), as shown in FIG. 5. If some other subscriber moves from the area of one local exchange to another and his telephone number remains the same, another new branch will grow to the tree. If the subscriber numbers are randomly distributed between the local exchanges, each digit of the telephone number must be analyzed separately. In that case, a data structure contains (in the case of this example) 111 records, i.e. 111 times as many as in the hierarchical case corresponding to FIGS. 2 and 3.
As appears from the above, changing over to free (non-hierarchical) numbering causes a strong expansion of the data structures to be used for digit analyses, and accordingly, a significantly greater demand for memory than before in the node (exchange) of the network. An attempt could be made for solving the problem in a straightforward way by increasing the memory, but in the long run, however, this is not a practical solution.
Another possible solution would be to build a centralized database (e.g. one similar to HLR (Home Location Register) of the GSM mobile communication network), to which the nodes of the network send queries via a high speed signalling link. However, a centralized data base of this kind requires lots of modifications to the network, and is thus a costly solution. Due to this, it is not a suitable solution e.g. for telephone companies, which wish to offer new services, such as free numbering without making any large purchases of devices. Introducing a centralized database does not eliminate the actual problem either, but only shifts it to another (centralized) place, where it is more easily handled.